This data release accompanies the publication "Evidence for Neutrino Emission from X-ray Bright Active Galactic Nuclei with IceCube."
It provides all data products and plotting scripts required to reproduce the five figures in the main text, as well as machine-readable versions of Tables 2 and 3 in the Appendix. 
In addition, we provide the 90% C.L. flux upper limits and the sensitive 68% C.L. energy range for Cygnus A, the 5th X-ray-bright AGN contributing to the reported 3.3-sigma binomial excess.

The sections below describe the full contents of the release and provide instructions for reproducing each figure using the supplied Jupyter notebooks and data files.


### Requirements:

- Python >= 3.10
- Jupyter
- Python Libraries:
    - healpy >= 1.19.0
    - matplotlib
    - numpy
    - pandas
    - scipy



### Reproducing Figure 1: Data/Monte Carlo (MC) agreement for the three analysis observables

**Notebook:**
- `plot_data_mc.ipynb`

**Data Files:**
The following files contain tabulated histograms of the data/MC agreement for the three analysis observables. For each detector configuration (IC86 and IC79), the observables are the reconstructed muon energy, the sine of the reconstructed muon declination, and the angular uncertainty on the reconstructed muon direction.

**IC86 detector configuration:**
- `IC86_data_MC_energy_table.csv`
- `IC86_data_MC_sindec_table.csv`
- `IC86_data_MC_angerr_table.csv`

**IC79 detector configuration:**
- `IC79_data_MC_energy_table.csv`
- `IC79_data_MC_sindec_table.csv`
- `IC79_data_MC_angerr_table.csv`



### Reproducing Figure 2: p-value map of the Northern Sky and zoom-in on the most significant hotspot

**Notebook:**
- `plot_skyscan_finescan.ipynb`

**Data Files:**
- `skymap_pvalues.csv`  
  Tabulated p-values from the Northern sky scan performed with the spectral index left as a free parameter of the likelihood.
- `finescan_ngc1068_pval.csv`  
  Tabulated p-values from a fine angular scan around the location of NGC 1068.
- `finescan_ngc1068_ts.csv`  
  Tabulated test-statistic values from the fine angular scan around NGC 1068, used to estimate the localization contours of the hotspot.



### Reproducing Figure 3: Likelihood contours of the power-law flux parameters of NGC1068

The power-law flux parameters scanned are:
* phi0:  flux normalization at 1 TeV and in units of 1/GeV/cm^2/s
* gamma: spectral index.

**Notebook:**
- `plot_ngc1068_llh_scan.ipynb`

**Data Files:**
- `ngc1068_llh_scan_prl2020.csv`
  (100, 100)-shaped array of log-likelihood-ratio values from earlier analysis published in Phys. Rev. Lett. 124, 051103 (2020).
  The log-likelihood-ratio is evaluated on a grid of flux parameters spanning phi0 from 1e-12 1/GeV/cm^2/s to 3e-10 1/GeV/cm^2/s (100 bins, log-spaced) and gamma from 2.0 to 4.0 (100 bins, linearly spaced).

- `ngc1068_llh_scan_science2022.pkl`
  Pickled dictionary containing the log-likelihood-ratio values from earlier analysis published in Science 378, 538-543 (2022):
  * 'phi0': (300, 300)-shaped grid of flu normalization values.
  * 'gamma': (300, 300)-shaped grid of spectral index values.
  * 'ts': (300, 300)-shaped grid of log-likelihood-ratio values.
  * 'bf': Best-fit parameters of NGC 1068 [phi0, gamma].

- `ngc1068_llh_scan_thiswork.pkl`
  Pickled dictionary containing the log-likelihood scan from the current analysis. The dictionary has the same structure as the one in `ngc1068_llh_scan_science2022.pkl`.



### Reproducing Figure 4: Binomial tests on the lists of gamma-ray and X-ray-bright sources

**Notebook:**
- `plot_binomial_excess.ipynb`

**Data Files:**
- `unblinded_gammaray_cat_floating_gamma.csv`
  Contains all information on the list of gamma-ray sources (110, including NGC 1068). It has the following columns:
    * Source Name
    * R.A.: Right Ascension of the source in degrees
    * Dec.: Declination of the source in degrees
    * $n_\mathrm{s}$: fitted mean number of signal events for the unbroken power-law hypothesis
    * $\gamma$: fitted spectral index for the unbroken power-law hypothesis
    * -log10pval: negative log10 of the local unblinded p-value for the unbroken power-law hypothesis
    * n_sigma: Gaussian-equivalent of the local p-value in $\sigma$
    * n_sigma_post: trial corrected significance of the most significant source in terms of $\sigma$ (reported only for the top sources, NaN otherwise)
    * $\phi_{90\%}^{E^{-2}}$: 90% flux upper limit for the power-law hypothesis for a spectral index $\gamma = 2$
    * $\phi_{90\%}^{E^{-3}}$: 90% flux upper limit for the power-law hypothesis for a spectral index $\gamma = 3$

- `unblinded_xray_bright_cat.csv`
  Contains all information on the list of X-ray-bright sources (48: 47 + NGC 1068). It has the same columns as the gamma-ray table plus:
    * F20-50-intr: The intrinsic X-ray flux of the sources in the 20-50 keV band from the BASS catalog
    * $n_\mathrm{s}$ Model: fitted mean number of signal events for Seyfert model hypothesis
    * -log10pval_model: negative log10 of the local unblinded p-value for the unbroken power-law hypothesis
    * n_sigma_model: Gaussian-equivalent of the local p-value in $\sigma$
    * $n_{\mathrm{s}_{90\%}}^{\mathrm{Model}}$: 90% $n_s$ upper limit for the Seyfert model hypothesis

- `bkg_expectation_gammaray_withNGC1068.csv`
- `bkg_expectation_xray_bright_withoutNGC1068.csv`
  Number of sources with p-value below a certain threshold as expected from background fluctuations only. The underlying signal hypothesis is the unbroken power-law spectrum. The first file is for the list of 110 gamma-ray sources (including NGC 1068), the second one for the list of 47 (excluding NGC 1068) X-ray-bright AGN.
  Columns:
    * `-log10(p-value)`: negative log10 of the local p-value thresholds
    * `expected_bkg_counts`: expected source counts with -log10(p-value) above threshold from background-only



### Reproducing Figure 5: Neutrino spectrum of the top 4 X-ray-bright sources contributing to the binomial excess

**Notebook:**
- `plot_top_sources_spectra.ipynb`

**Data Files:**
- `bpl_butterfly.csv`
  Broken power-law 68% C.L. flux intervals in 90% C.L. energy range from https://arxiv.org/pdf/2507.22233.
  See also https://doi.org/10.7910/DVN/ZBO52I for the corresponding data release.

- `NGC1068_bowtie.pkl`
- `NGC7469_bowtie.pkl`
- `NGC4151_bowtie.pkl`
- `CGCG420-015_bowtie.pkl`
  Pickled dictionaries containing, for each source:
    * `E_band`: Array with energy values contained in the 95% C.L. energy range. Units: GeV
    * `Fmin_Fmax`: (Fmin, Fmax)-tuple, with Fmin and Fmax arrays containing the lower and upper bounds of the 68% C.L. flux interval at each energy.



### Reproducing Appendix Tables: Summaries of results for both analyzed source lists

**Notebook:**
- `appendix_tables.ipynb`

**Data Files:**
- `unblinded_gammaray_cat_floating_gamma.csv`
- `unblinded_xray_bright_cat.csv`
For the description of these files see Section `Reproducing Figure 4`.



### Additional Figure: Cygnus A 90% C.L. flux upper limit and 68% C.L. energy range

**Notebook:**
- `plot_cygnusA_UL.ipynb`  
  Notebook to plot the 90% C.L. flux upper limit for Cygnus A, the source ranked 5th among the X-ray bright AGN contributing to the $3.3\sigma$ binomial excess.

**Data Files:**
- `CygnusA_Erange_and_UL.csv`
  Contains the following columns:
    * `Erange_min`: lower boundary of the sensitive 68% C.L. energy range. Units: GeV
    * `Erange_max`: upper boundary of the sensitive 68% C.L. energy range. Units: GeV
    * `UL`: 90% C.L. flux upper limit at 1 TeV assuming the best-fit spectral index gamma = 1.6. Units: 1/GeV/cm^2/s
  Note that the 68% C.L. energy range is computed assuming the best-fit flux of Cygnus A (best-fit number of signal events n_s=3.4 and spectral index gamma=1.6).